.TH std::messages_byname 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::messages_byname \- std::messages_byname

.SH Synopsis
   Defined in header <locale>
   template< class CharT >
   class messages_byname : public std::messages<CharT>;

   std::messages_byname is a std::messages facet which encapsulates retrieval of
   strings from message catalogs of the locale specified at its construction.

.SH Specializations

   The standard library is guaranteed to provide the following specializations:

   Defined in header <locale>
   std::messages_byname<char>    narrow/multibyte message catalog access
   std::messages_byname<wchar_t> wide string message catalog access

.SH Member types

   Member type Definition
   catalog     std::messages_base<CharT>::catalog
   string_type std::basic_string<CharT>

.SH Member functions

   constructor   constructs a new messages_byname facet
                 \fI(public member function)\fP
   destructor    destroys a messages_byname facet
                 \fI(protected member function)\fP



std::messages_byname::messages_byname

   explicit messages_byname( const char* name, std::size_t refs = 0 );
   explicit messages_byname( const std::string& name, std::size_t refs =  \fI(since C++11)\fP
   0 );

   Constructs a new std::messages_byname facet for a locale with name.

   refs is used for resource management: if refs == 0, the implementation destroys the
   facet, when the last std::locale object holding it is destroyed. Otherwise, the
   object is not destroyed.

.SH Parameters

   name - the name of the locale
   refs - the number of references that link to the facet



std::messages_byname::~messages_byname

   protected:
   ~messages_byname();

   Destroys the facet.

Inherited from std::messages

.SH Member types

   Member type Definition
   char_type   CharT
   string_type std::basic_string<CharT>

.SH Member objects

   Member name Type
   id (static) std::locale::id

.SH Member functions

   open  invokes do_open
         \fI(public member function of std::messages<CharT>)\fP
   get   invokes do_get
         \fI(public member function of std::messages<CharT>)\fP
   close invokes do_close
         \fI(public member function of std::messages<CharT>)\fP

.SH Protected member functions

   do_open   opens a named message catalog
   \fB[virtual]\fP \fI(virtual protected member function of std::messages<CharT>)\fP
   do_get    retrieves a message from an open message catalog
   \fB[virtual]\fP \fI(virtual protected member function of std::messages<CharT>)\fP
   do_close  closes a message catalog
   \fB[virtual]\fP \fI(virtual protected member function of std::messages<CharT>)\fP

.SH Example


// Run this code

 #include <iostream>
 #include <locale>

 void try_with(const std::locale& loc)
 {
     const std::messages<char>& facet = std::use_facet<std::messages<char>>(loc);

     std::messages<char>::catalog cat = facet.open("sed", std::cout.getloc());
     if (cat < 0)
         std::cout << "Could not open \\"sed\\" message catalog\\n";
     else
         std::cout << "\\"No match\\" "
                   << facet.get(cat, 0, 0, "No match") << '\\n'
                   << "\\"Memory exhausted\\" "
                   << facet.get(cat, 0, 0, "Memory exhausted") << '\\n';

     facet.close(cat);
 }

 int main()
 {
     std::locale loc("en_US.utf8");
     std::cout.imbue(loc);

     try_with(std::locale(loc, new std::messages_byname<char>("de_DE.utf8")));
     try_with(std::locale(loc, new std::messages_byname<char>("fr_FR.utf8")));
     try_with(std::locale(loc, new std::messages_byname<char>("ja_JP.utf8")));
 }

.SH Possible output:

 "No match" Keine Übereinstimmung
 "Memory exhausted" Speicher erschöpft
 "No match" Pas de concordance
 "Memory exhausted" Mémoire épuisée
 "No match" 照合しません
 "Memory exhausted" メモリーが足りません

.SH See also

   messages implements retrieval of strings from message catalogs
            \fI(class template)\fP
